package cn.da.shuai.cool.finance.service;

import cn.da.shuai.cool.finance.model.CoolBudget;
import cn.da.shuai.cool.mybatis.service.ICoolService;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface ICoolBudgetService extends ICoolService<CoolBudget> {

    boolean createBudget(CoolBudget budget);

    boolean updateBudget(CoolBudget budget);

    boolean approveBudget(Long budgetId, Long approverId);

    boolean rejectBudget(Long budgetId, Long approverId, String reason);

    boolean recordActual(Long budgetId, java.math.BigDecimal actualAmount);

    List<CoolBudget> getDepartmentBudgets(Long departmentId, Integer fiscalYear);

    Map<String, Object> getBudgetVarianceReport(Integer fiscalYear);

    Map<Integer, Map<String, BigDecimal>> getBudgetTrends(Integer fiscalYear);

    Map<String, Object> getDepartmentComparison(Integer fiscalYear);

    List<Map<String, Object>> getForecastVsActual(Integer fiscalYear);
}